import com.dinmax.mediacenter.*

class MenuRetoque {
	/*
	private var _efectosRetoque:Array; // de EfectoRetoque
	private var efecto:Efecto;
	private var fot:Foto;
	private var _lRetoques:MenuItemListener;
	private var _clip:MovieClip;
	private var _clipUndo:MovieClip;
	private var _retoques:MovieClip;
	private var nBrillo:Number=0;
	private var nRotar:Number=0;
	private var nValor:Number;
	private var nZoom:Number=0;
	private var nContraste:Number=0;
	private var _sEfecto:String;
			
	function MenuRetoque(parent:MovieClip){
		_acordion=acordion;
		_clip=parent;
		_lRetoques=new MenuItemListener();
		dibujarMenu();
		apagarNumeric();
		prenderRetoque();
		apagarUndo();
		initListener();
	}
	
	public function cerrarUndo(indice:Number){
		_level0.mcUndo.loader.unloadMovie();
		if(indice!=undefined){
		refreshFotoEfecto(indice);
		}
		if(indice==0){
			apagarUndo();
		}
	}
	
	public function refreshFotoEfecto(indice:Number){
			if(indice==undefined){
				fot=Application.getFotoEnUso().foto.getId();
				MediaCenter.clearEfectos();
				MediaCenter.addEfecto(fot);
				apagarUndo();
			} else {
				fot=MediaCenter.getEfectos()[indice];
				MediaCenter.removeEfectoFrom(indice);
				MediaCenter.addEfecto(fot);
			}
	}
	public function guardarEfecto(){
		//Application.cargador();
		MediaCenter.EventoFoto=function(_foto:Foto, _error:String){
			if(_error==undefined){
				Application.getMenuRetoque().refreshFotoEfecto();
				Application.getMenuRetoque().prenderRetoque();
				//Application.finCargador();
				Application.getMenuBiblioteca().borrarBibliotecas();
				Application.getMenuBiblioteca().refreshBibliotecas();
				Application.resetUltimoContenido()
				//Application.selectAlbum(Application.getAlbum());
				Application.loadContent(Application.getAlbum().getFotos()[Application.getAlbum().getFotos().length-1].getLargeFoto(), true);
			} else {
				trace("ERROR moveFoto en guardarEfecto(): "+_error);
			}
		}
		//MediaCenter.moveFoto(MediaCenter.getEfectos()[MediaCenter.getEfectos().length-1], Application.getAlbum());
	}
	
	private function getFot():Foto{
		return fot;
	}
	private function setFot(foot:Foto){
		fot=foot;
	}
	private function getSEfecto():String{
		return _sEfecto;
	}
	//////////////////////////////////////::.PRIVATES
	private function dibujarMenu():Void{
		_clip.createEmptyMovieClip("mcMenu2", _clip.getNextHighestDepth());
		_clip.createObject("NumericStepper", "controlador", _clip.getNextHighestDepth());
		_clip.controlador.setSize(45, 22);
		_clip.controlador.move(50, 80);
				
		_clip.attachMovie("BotonOk", "boton", _clip.getNextHighestDepth());
		_clip.boton._x=100;
		_clip.boton._y=80;
		
		_clip.attachMovie("BotonCancel", "botonCancel", _clip.getNextHighestDepth());
		_clip.botonCancel._x=120;
		_clip.botonCancel._y=80;
					
		_clip.attachMovie("Deshacer", "undo", _clip.getNextHighestDepth());
		_clip.undo._x=145;
		_clip.undo._y=80;
				
		_retoques=_clip.mcMenu2.attachMovie("Retoque", "mcBarraRetoque", _clip.mcMenu2.getNextHighestDepth());
	}
	
	private function apagarNumeric(){
		_clip.controlador.visible=false;
		_clip.controlador.value=0;
		_clip.boton._visible=false;
		_clip.botonCancel._visible=false;
	}
	
	private function prenderNumeric(valor:Number, minimo:Number, maximo:Number, pasos:Number){
			_clip.controlador.visible=true;
			_clip.controlador.value=valor;
			_clip.controlador.stepSize=pasos;
			_clip.controlador.minimum=minimo;
			_clip.controlador.maximum=maximo;
			_clip.boton._visible=true;
			_clip.boton.onRollOver=function(){
				this._parent.mcMenu2.mcBarraRetoque.txt_estado.text="Aplicar cambios";
			}
			_clip.boton.onRollOut=function(){
				this._parent.mcMenu2.mcBarraRetoque.txt_estado.text="";
			}
			_clip.botonCancel._visible=true;
			_clip.botonCancel.onRollOver=function(){
				this._parent.mcMenu2.mcBarraRetoque.txt_estado.text="Cancelar";
			}
			_clip.botonCancel.onRollOut=function(){
				this._parent.mcMenu2.mcBarraRetoque.txt_estado.text="";
			}
			_clip.botonCancel.retoque=this;
			_clip.botonCancel.onPress=function(){
					this.retoque.apagarNumeric();
					this.retoque.prenderRetoque();
			}
	}
	
	private	function prenderRetoque(){
			for(var sNested:String in _retoques){
				var miRetoques:MenuItem= new MenuItem(_retoques[sNested]);
				if(sNested=="mcZoom" || sNested=="mcCrop" || sNested=="mcHand"){
					_retoques[sNested].enabled=false;
					_retoques[sNested]._alpha=50;
				} else {
				_retoques[sNested].enabled=true;
				_retoques[sNested].useHandCursor=false;
				miRetoques.addListener(_lRetoques);
				}
			}
	}
	
	private function apagarRetoque(){
		_clip.useHandCursor=false;
		for(var sNested:String in _retoques){
				_retoques[sNested].enabled=false;
		}
	}

	private function prenderUndo(){
			_retoques.mcDisco.enabled=true;
			_retoques.mcDisco._alpha=100;
			_clip.undo._visible=true;
			_clip.undo.root=this;
			_clip.undo.onRollOver=function(){
				this._parent.mcMenu2.mcBarraRetoque.txt_estado.text="Deshacer/volver atras";
			}
			_clip.undo.onRollOut=function(){
				this._parent.mcMenu2.mcBarraRetoque.txt_estado.text="";
			}
			_clip.undo.onPress=function(){
				this.root._clipUndo=this.root._acordion._parent.createEmptyMovieClip("mcUndo",
										this.root._acordion._parent.getNextHighestDepth());
				this.root._clipUndo._x=510;
				this.root._clipUndo._y=80;
				this.root._clipUndo.createEmptyMovieClip("loader", this.root._clipUndo.getNextHighestDepth());
				this.root._clipUndo.loader.loadMovie("undo.swf");
			}
		}
		
	private function apagarUndo(){
			_clip.undo._visible=false;
			_retoques.mcDisco.enabled=false;
			_retoques.mcDisco._alpha=50;
	}
	
	private function initListener(){
		_lRetoques.setThis(this);
		_lRetoques.clipRollOver=function(origen:MovieClip){
			origen._yscale+=8;
			origen._xscale+=8;
			switch(origen._name){
				case "mcDisco":
				origen._parent.txt_estado.text="Guardar foto";
				break;
				case "mcRotar":
				origen._parent.txt_estado.text="Rotar";
				break;
				case "mcFlipH":
				origen._parent.txt_estado.text="Reflejar horizontal";
				break;
				case "mcFlipV":
				origen._parent.txt_estado.text="Reflejar vertical";
				break;
				case "mcBrillo":
				origen._parent.txt_estado.text="Modificar el brillo";
				break;
				case "mcContraste":
				origen._parent.txt_estado.text="Modificar el contraste";
				break;
				case "mcBn":
				origen._parent.txt_estado.text="Convertir a grises";
				break;
				case "mcSepia":
				origen._parent.txt_estado.text="Tonalizar sepia";
				break;
				case "mcInvertir":
				origen._parent.txt_estado.text="Invertir colores";
				break;
				case "mcTonoCyan":
				origen._parent.txt_estado.text="Tonalizar cyan";
				break;
				case "mcTonoMagenta":
				origen._parent.txt_estado.text="Tonalizar magenta";
				break;
				case "mcTonoAmarillo":
				origen._parent.txt_estado.text="Tonalizar amarillo";
				break;
			}
		}
		_lRetoques.clipRollOut=function(origen:MovieClip){
			origen._yscale-=8;
			origen._xscale-=8;
			origen._parent.txt_estado.text="";
		}

		_lRetoques.clipPress=function(origen:MovieClip){
			if(Application.getFotoEnUso()==undefined){ // si no hay ninguna foto cargada no hace nada
			origen._parent.txt_estado.text="Seleccionar una foto";
			} else {
				
				this.clipRollOut(origen);
				this.getThis().apagarRetoque();
				
				this.getThis().efecto=new Efecto();								
				MediaCenter.EventoFoto=function (foto:Foto,error:String) {
						if(error==undefined){
						
						//Application.finCargador();
						Application.unloadContent(true);
						Application.loadContent(foto.getLargeFoto(), true, true);
						Application.getMenuRetoque().setFot(foto);
						Application.getMenuRetoque().getFot().setNombre(Application.getMenuRetoque().getSEfecto());
						Application.getMenuRetoque().prenderUndo();
						Application.getMenuRetoque().apagarNumeric();
						Application.getMenuRetoque().prenderRetoque();
						}else{
							trace("ERROR EVENTO FOTO MENURETOQUE.AS ERROR: "+error);
						}
				}
								
				switch(origen._name){
					case "mcDisco":
					this.getThis().guardarEfecto();
					break;
					case "mcSepia":
					this.getThis().apagarNumeric();
					this.getThis().efecto.setEfectoColor(Efecto.IMAGEN_OPERACION_SEPIA);
					this.getThis()._sEfecto="sepia";
					//Application.cargador();
					MediaCenter.efectoFoto(this.getThis().fot,this.getThis().efecto);
					break;
					
					case "mcTonoCyan":
					this.getThis().apagarNumeric();
					this.getThis().efecto.setEfectoColor(Efecto.IMAGEN_OPERACION_CYAN);
					this.getThis()._sEfecto="cyan";
					//Application.cargador();
					MediaCenter.efectoFoto(this.getThis().fot,this.getThis().efecto);
					break;
					
					case "mcTonoMagenta":
					this.getThis().apagarNumeric();
					this.getThis().efecto.setEfectoColor(Efecto.IMAGEN_OPERACION_MAGENTA);
					this.getThis()._sEfecto="magenta";
					//Application.cargador();
					MediaCenter.efectoFoto(this.getThis().fot,this.getThis().efecto);
					break;
					
					case "mcTonoAmarillo":
					this.getThis().apagarNumeric();
					this.getThis().efecto.setEfectoColor(Efecto.IMAGEN_OPERACION_AMARILLO);
					this.getThis()._sEfecto="amarillo";
					//Application.cargador();
					MediaCenter.efectoFoto(this.getThis().fot,this.getThis().efecto);
					break;
					
					case "mcInvertir":
					this.getThis().apagarNumeric();
					this.getThis().efecto.setInvertirColor(true);
					this.getThis()._sEfecto="invertir";
					//Application.cargador();
					MediaCenter.efectoFoto(this.getThis().fot,this.getThis().efecto);
					break;
					
					case "mcBn":
					this.getThis().apagarNumeric();
					this.getThis().efecto.setEfectoColor(Efecto.IMAGEN_OPERACION_GRISES);
					this.getThis()._sEfecto="bn";
					//Application.cargador();
					MediaCenter.efectoFoto(this.getThis().fot,this.getThis().efecto);
					break;
					
					case "mcFlipH":
					this.getThis().apagarNumeric();
					this.getThis().efecto.setFlipHorizontal(true);
					this.getThis()._sEfecto="reflejo h";
					//Application.cargador();
					MediaCenter.efectoFoto(this.getThis().fot,this.getThis().efecto);
					break;
					
					case "mcFlipV":
					this.getThis().apagarNumeric();
					this.getThis().efecto.setFlipVertical(true);
					this.getThis()._sEfecto="reflejo v";
					//Application.cargador();
					MediaCenter.efectoFoto(this.getThis().fot,this.getThis().efecto);
					break;
					
					case "mcBrillo":
					this.getThis().prenderNumeric(0, -100, +100, 10);
					this.getThis()._clip.boton.retoque=this.getThis();
					this.getThis()._clip.boton.onPress=function(){
						this.retoque.nBrillo=this.retoque._clip.controlador.value
						this.retoque.efecto.setBrillo(this.retoque.nBrillo);
						this.retoque._sEfecto="brillo "+this.retoque.nBrillo;
						//Application.cargador();
						MediaCenter.efectoFoto(this.retoque.fot,this.retoque.efecto);
					}
					break;
					
					case "mcContraste":
					this.getThis().prenderNumeric(0, -100, +100, 10);
					this.getThis()._clip.boton.retoque=this.getThis();
					this.getThis()._clip.boton.onPress=function(){
						this.retoque.nContraste=this.retoque._clip.controlador.value
						this.retoque.efecto.setContraste(this.retoque.nContraste);
						this.retoque._sEfecto="contraste "+this.retoque.nContraste;
						//Application.cargador();
						MediaCenter.efectoFoto(this.retoque.fot,this.retoque.efecto);
					}
					break;
					
					case "mcRotar":
					this.getThis().prenderNumeric(0, -90, +180, 90);
					this.getThis()._clip.boton.retoque=this.getThis();
					this.getThis()._clip.boton.onPress=function(){
						this.retoque.nRotar=this.retoque._clip.controlador.value
						this.retoque.efecto.setRotacion(this.retoque.nRotar);
						this.retoque._sEfecto="rotacion "+this.retoque.nRotar;
						//Application.cargador();
						MediaCenter.efectoFoto(this.retoque.fot,this.retoque.efecto);
					}
					break;
				}
			}
		}
		
		
	}
	*/
} //FIN
